Active Vibrations

ABSTRACT

Active vibration techniques are described. In implementations, a selection of a type of writing surface or a type of writing implement is received, the selection made through interaction with a user interface. The selected type of writing surface or type of writing implement is simulated using vibrations of a stylus or surface of a computing device that is configured to receive one or more inputs from the stylus.

RELATED APPLICATIONS

This application is a continuation of, and claims priority to, U.S.patent application Ser. No. 12/770,392, filed on Apr. 29, 2010, theentire disclosure of which is incorporated by reference herein.

BACKGROUND

The variety of input techniques that are available for a user tointeract with a computing device is ever increasing. For example, a usermay use a keyboard and mouse, a touch pad, and so on to provide inputsto the computing device. Touchscreen functionality was also developed toenable a user to interact with a display device of the computing device.For example, the touchscreen functionality may detect a finger of a userand leverage this detection as an input. Likewise, the touchscreenfunctionality may detect a stylus and use this detection as a basis ofan input for interaction with the computing device.

Traditional techniques that were employed to provide a stylus, however,were forced to balance a feel of the stylus that was generally providedby a rough surface of the display device with possibly degrading theviewing quality of the display device by including the rough surface.Therefore, these traditional techniques may result in a compromise thatis less than ideal in relation to both aspects, e.g., look of thedisplay device and feel experienced through use of the stylus.

SUMMARY

Active vibration techniques are described. In implementations, aselection of a type of writing surface or a type of writing implement isreceived, the selection made through interaction with a user interface.The selected type of writing surface or type of writing implement issimulated using vibrations of a stylus or surface of a computing devicethat is configured to receive one or more inputs from the stylus.

In implementations, an input is detected that involves pressure causedthrough pressing a stylus against a surface of a computing device. Abehavior is determined that corresponds to the detected pressure and thebehavior is simulated through vibration of the stylus or the surface ofthe computing device.

In implementations, an input is detected that describes pressure causedby pressing a stylus against a surface of a computing device, the inputreceived during vibration of at least one of the stylus or the surfaceto provide haptic feedback. At least part of an effect of the vibrationis removed from the input and one or more actions are identified thatare to be performed by the computing device responsive to the inputhaving at least part of the effect of the vibration removed.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used as an aid in determining the scope of the claimed subjectmatter.

BRIEF DESCRIPTION OF THE DRAWINGS

The detailed description is described with reference to the accompanyingfigures. In the figures, the left-most digit(s) of a reference numberidentifies the figure in which the reference number first appears. Theuse of the same reference numbers in different instances in thedescription and the figures may indicate similar or identical items.

FIG. 1 is an illustration of an environment in an example implementationthat is operable to employ active vibration techniques.

FIG. 2 is an illustration of an example system showing a stylus of FIG.1 in a cross-sectional view and in contact with a surface, which in thisinstance is a display device of the computing device.

FIG. 3 depicts a procedure in an example implementation in which awriting surface and/or a writing implement are simulated through the useof vibrations.

FIG. 4 depicts a procedure in an example implementation in which aneffect of a vibration used to provide feedback is at least partiallycancelled.

FIG. 5 depicts a system in an example implementation in which vibrationsare adjustable in response to pressure of an input against a surface ofthe display device of the computing device.

FIG. 6 depicts a procedure in an example implementation in whichbehavior is changed of one or more vibrations responsive to pressureapplied to a surface of a computing device.

FIG. 7 illustrates various components of an example computing device ingreater detail.

DETAILED DESCRIPTION

Overview

A variety of different techniques may be utilized to provide inputs to acomputing device. One such technique involves a stylus, which waslimited to approximate a single “feel” of a writing instrument due tolimitations of the writing surface (e.g., a display device, writing pad,and so on) and material of the stylus. Accordingly, traditionaltechniques that were employed to promote a particular feel may involveproviding a roughened surface, which may hinder visibility of a displaydevice.

Active vibration techniques are described. In implementations, vibrationof a stylus and/or a surface is used to provide feedback to a user.Additionally, this feedback may be adjusted through a user interface toselect a particular “feel” to be encountered by the user. For example,the user interface may be configured to select a particular writingimplement (e.g., a pen, pencil, marker, highlighter, fountain pen, andso on) and/or writing surface (e.g., glass, fine-grained paper,construction paper, wood, rubber, and so on). Vibration of the surfaceand/or the stylus may then be used to simulate the selections. Thus, inthis example the user experience is customizable by a user,manufacturer, or developer of the computing device and/or stylus,further discussion of which may be found in relation to FIG. 3.

In another example, the stylus and/or surface of the computing devicemay be configured to detect pressure applied to the surface by thestylus. This pressure may be used as an input to provide a variety offunctionality, such as to draw a line having different thicknesses.However, the surface and/or stylus may also be configured to providefeedback through vibrations, which could interfere with the input.Accordingly, in this example the computing device and/or the stylus maybe configured to cancel at least part of the determined effect of thevibration from the input, further discussion of which may be found inrelation to FIGS. 4 and 5.

In a further example, feedback provided by vibration of the surface ofthe computing device and/or the stylus is changed responsive to an inputthat describes pressure against the surface. For instance, a finger of auser's hand may be used to press against the surface. Responsive to theamount of pressure, the vibrations may be changed to provide hapticfeedback. For instance, the input may describe a line using variousamounts of pressure as a finger is dragged across the surface.Responsive to this input, the line may be drawn as having a width thatvaries with the pressure. Additionally, vibrations may increase as theamount of pressure increases to provide haptic feedback. A variety ofother examples and instances are contemplated, further discussion ofwhich may be found in relation to FIG. 6.

In the following discussion, an example environment is first describedthat is operable to employ the dynamic resistance control techniquesdescribed herein. Example procedure and illustrations of a stylus andtechniques involving dynamic resistance are then described, which may beemployed in the example environment as well as in other environments.Accordingly, the example environment is not limited to performing theexample procedures. Likewise, the example procedures are not limited toimplementation in the example environment or by the example stylus.

Example Environment

FIG. 1 is an illustration of an environment 100 in an exampleimplementation that is operable to employ active vibration techniques.The illustrated environment 100 includes an example of a computingdevice 102 that may be configured in a variety of ways. For example, thecomputing device 102 may be configured as a traditional computer (e.g.,a desktop personal computer, laptop computer, and so on), a mobilestation, an entertainment appliance, a set-top box communicativelycoupled to a television, a wireless phone, a netbook, a game console,and so forth as further described in relation to FIGS. 2 and 7. Thus,the computing device 102 may range from full resource devices withsubstantial memory and processor resources (e.g., personal computers,game consoles) to a low-resource device with limited memory and/orprocessing resources (e.g., traditional set-top boxes, hand-held gameconsoles).

The computing device 102 is illustrated as including an input/outputmodule 104. The input/output module 104 is representative offunctionality relating to inputs and/or outputs of the computing device102. For example, the input/output module 104 may be configured toreceive inputs from a keyboard, mouse, to identify gestures and causeoperations to be performed that correspond to the gestures, and so on.The inputs may be identified by the input/output module 104 in a varietyof different ways. For example, the input/output module 104 may beconfigured to recognize a touch input received via touchscreenfunctionality of a display device 106, such as a finger of a user's handas proximal to the display device 106 of the computing device 102.

The input/output module 104 may also be configured to provide one ormore outputs, such as to provide haptic feedback through a vibrationmodule 108. The vibration module 108 is representative of functionalityof the computing device 102 to provide vibrations. For example, thevibrations may be configured to provide a different “feel” to contact ofa stylus 110 with the display device 106, feedback to indicate selectionof an object using the stylus 110, and so on. Additionally, the stylus110 may also include a vibration module 112 to provide similar feedback,feel, and so on. Further, the vibration module 108 may providevibrations responsive to a touch input provided by a finger of a user'shand 114. Thus, the vibration modules 108, 112, of the computing device102 and stylus 110 may work in conjunction or separately to providevibrations, further discussion of which may be found in relation to thefollowing figure.

FIG. 2 illustrates an example system 200 showing the stylus 110 of FIG.1 in a cross-sectional view and in contact with a surface, which in thisinstance is a surface 202 of the display device 106 of the computingdevice 102. In this example, the vibration module 112 is illustrated asbeing implemented using a weight 204 that is captured within a housing206. The weight 204 is configured to vibrate via a mechanism (e.g.,piezoelectric, mechanical cam, MEMS device, and so on) in two or moredirections to create the vibrations.

Likewise, the vibration module 108 of the computing device 102 may alsoemploy a mechanism to induce vibrations to the surface of the displaydevice 106 in two or more directions as illustrated by the arrows. Thisvibration of the surface 202 may then be transmitted through a tip ofthe stylus 110 to transmit the vibrations indirection to a user's handthat grasps the stylus 110, directly to a finger of the user's hand 114that is in contact with the surface 202, and so on.

The vibrations may be provided to achieve a variety of differentfunctionality. For example, the vibrations may be dynamically adjusted(e.g., back and forth between greater and lesser relative amounts ofvibration) to provide different “feels” to the use of the stylus 110.Further, the resistance may be adjusted to emulate different writingexperiences, such as use of a felt-tip pen, a fountain pen, a marker, acrayon, a paint brush, and so forth on a variety of different writingsurfaces, such as glass, fine-grained paper, coarse paper (e.g.,construction paper), leather, rubber, wood, and so forth. In animplementation, the vibrations may also be customized by a user, such asthrough interaction with a user interface of the computing device 102that is output by the input/output module 104.

Although the vibration mechanism in this example system 200 illustratesa moveable weight 204, a variety of other configurations are alsocontemplated. For example, a resistance mechanism may be employed thatbased on sonic vibrations, micro-electrical mechanical systems (e.g.,MEMS devices), piezoelectric elements, and so on. Likewise, othertechniques may also be employed to vibrate the surface 202 of thedisplay device 106, such as through a rotating cam that causes movementof the surface 202, a capacitive detector to release a spring-loadedmechanism, and so on.

Generally, any of the functions described herein can be implementedusing software, firmware, hardware (e.g., fixed logic circuitry), or acombination of these implementations. The terms “module,”“functionality,” and “logic” as used herein generally representsoftware, firmware, hardware, or a combination thereof In the case of asoftware implementation, the module, functionality, or logic representsprogram code that performs specified tasks when executed on a processingsystem (e.g., CPU or CPUs). The program code can be stored in one ormore computer readable memory devices. The features of the activevibration techniques described below are platform-independent, meaningthat the techniques may be implemented on a variety of commercialcomputing platforms having a variety of processors.

Example Procedures

The following discussion describes active vibration techniques that maybe implemented utilizing the previously described systems and devices.Aspects of each of the procedures may be implemented in hardware,firmware, software, or a combination thereof. The procedures are shownas a set of blocks that specify operations performed by one or moredevices and are not necessarily limited to the orders shown forperforming the operations by the respective blocks. In portions of thefollowing discussion, reference will be made to the environment 100 ofFIG. 1 and the system 200 of FIG. 2.

FIG. 3 depicts a procedure 300 in an example implementation in which awriting surface and/or a writing implement are simulated through the useof vibrations. A selection is received of a type of writing surface ortype of writing implement, the selection made through interaction with auser interface (block 302). For example, the user interface may beoutput by the computing device 102. A first portion of the userinterface may be configured to include selections of types of writingimplements, such as a pen, fountain pen, marker, crayon, pencil,highlighter, fine-tipped marker, and so on. A second portion of the userinterface may be configured to include selection of types of writingsurfaces, such as glass, wood, rubber, fine-grained paper,coarse-grained paper, and so on. A variety of other examples are alsocontemplated, such as a user interface that includes selections ofcombinations (e.g., fountain pen and fine-grained paper, pencil andsketch paper, grease pencil and glass, and so forth).

The selection is then simulated (block 304), such as by simulating theselected writing implement or writing surface using vibrations of asurface of a computing device (block 306), simulation of the selectedwriting implement or writing surface using vibrations of a stylus (block308), and so on. For example, a combination of vibrations of the surface202 and the stylus 110 may be used to simulate a combination of writingimplement and surface selected.

Additionally, either one of these techniques may also be used alone,such as to vibrate the surface 202 to provide feedback to a finger of auser's hand 114. Further, vibration of one of the devices may be used tosimulate a selection of another one of the devices, such as to vibratethe surface 202 to simulate a writing implement by the stylus 110,vibration of the stylus 110 to simulate a writing surface, and so on.

The vibrations may take a variety of different forms, such as to employsinusoidal or non-sinusoidal vibrations to simulate textures, such asglass versus paper. For instance, the non-sinusoidal vibrations may beused to mimic paper fibers whereas relatively uniform sinusoidalvibrations may be used to simulate a relatively uniform surface, e.g.,glass. Accordingly, the frequency and pattern of the vibrations maysimulate surfaces having different textures. In another example, thevelocity of the stylus may be used as a basis to adjust a frequencyand/or wavelength of vibrations, e.g., as the stylus 110 is moved fasterthe frequency of the vibrations is also increased. A variety of otherinstances are also contemplated, examples of which are discussed asfollows.

FIG. 4 depicts a procedure 400 in an example implementation in which aneffect of a vibration used to provide feedback is cancelled. During thediscussion of FIG. 4, reference may also be made to a system 500 of FIG.5. As shown in FIG. 5, in some instances, the stylus 110 and/or surface202 of the computing device 102 may be configured to detect an amount ofpressure. Examples of this functionality are represented by the pressuremodule 502 of the computing device 102 and the pressure module 504 ofthe stylus 110 in the system 500. The detection of the amount ofpressure may be used to provide a variety of functionality, such as todraw a thin line 506 when detecting a lesser amount of pressure and athicker line 508 when detecting a greater amount of pressure.

Thus, detection of the pressure by the computing device 102 and/or thestylus 110 may be leveraged to increase functionality that is availableto a user of the computing device 102 and the stylus 110. However, insome instances the vibration used to provide feedback may interfere withthis detection. Accordingly, in this example the effect of at least partof the vibration is cancelled.

Returning back again to FIG. 4, an input is detected that describespressure against a surface of a computing device (block 402). The inputmay be detected in a variety of ways, such as at the surface 202 of thecomputing device 102 (e.g., from pressure applied by the stylus 110and/or a finger of a user's hand 114), at a tip 208 of the stylus 110,and so on.

A determination is made as to an effect of vibration of the stylus orthe surface on the input (block 404). For instance, a manufacturer maydetermine the effect through analysis of the known inputs with knownvibrations to determine the effect. Therefore, the computing device 102and/or the stylus 110 may determine the effect by “knowing” the amountof vibration, such as through a table lookup. In another instance,sensors may be used to determine the effect of the vibration to be usedas a baseline for addition of the input. A variety of other instancesare also contemplated.

At least part of the determined effect of the vibration is cancelledfrom the input (block 406). Continuing with the previous example, thedetermined effect may be at least partially removed from the input toarrive at an input that was intended. Thus, “noise” encountered throughthe vibration of the surface 202 and/or stylus 110 may be at leastpartially removed from the input to arrive at an intended input. One ormore actions may then be identified responsive to the input having thedetermined effect removed (block 408), e.g., to draw a line, select apart of a user interface (e.g., via a “tap”), and so on. Thus, in thisexample the effect of the vibration was at least partially removed todetermine an input. The vibration may also used to provide feedbackbased on an amount of pressure detected, further discussion of which maybe found in relation to the following figure.

FIG. 6 depicts a procedure 600 in an example implementation in which abehavior is simulated through vibrations responsive to a detectedpressure. An input is detected that involves pressure caused against asurface of a computing device (block 602). For example, the input may becaused by pressing a stylus 110 against a surface 202 of the displaydevice 106, a finger of a user's hand 114, and so on.

A behavior is determined that corresponds to the detected pressure(block 604). Continuing with the previous example, the input may bedetected to specify a width of a line through pressing a stylus 110against the surface 202 of the display device 106 as shown in FIG. 5.The behavior may then involve simulating different amounts of resistancethat are felt when drawing a thin line versus a thicker line. A varietyof other behaviors are also contemplated, such as to simulate a surfacewhen touched by the finger of the user's hand 114 (e.g., a texture), andso on.

The behavior is simulated through vibration of a stylus that was used toprovide the pressure or the surface of the computing device (block 606).For instance, the surface 202 of the display device 106 may vibrate tosimulate a feel of a writing surface responsive to a touch inputreceived from the finger of the user's hand 114. Additionally, one ormore actions may be performed responsive to the input (block 608), suchas to draw a line, select an item in a menu, and so forth. Thus, thevibrations of the stylus 110 and /or the surface 202 of the displaydevice 106 may be used to simulate a variety of different behaviorsresponsive to an input.

Example Device

FIG. 7 illustrates various components of an example computing device 700that can be implemented as any type of portable and/or computer deviceas described with reference to FIGS. 1 and 2 to implement embodiments ofthe gesture techniques described herein. Device 700 includescommunication devices 702 that enable wired and/or wirelesscommunication of device data 704 (e.g., received data, data that isbeing received, data scheduled for broadcast, data packets of the data,etc.). The device data 704 or other device content can includeconfiguration settings of the device, media content stored on thedevice, and/or information associated with a user of the device. Mediacontent stored on device 700 can include any type of audio, video,and/or image data. Device 700 includes one or more data inputs 706 viawhich any type of data, media content, and/or inputs can be received,such as user-selectable inputs, messages, music, television mediacontent, recorded video content, and any other type of audio, video,and/or image data received from any content and/or data source.

Device 700 also includes communication interfaces 708 that can beimplemented as any one or more of a serial and/or parallel interface, awireless interface, any type of network interface (e.g., wireless to thestylus 110), a modem, and as any other type of communication interface.The communication interfaces 708 provide a connection and/orcommunication links between device 700 and a communication network bywhich other electronic, computing, and communication devices communicatedata with device 700.

Device 700 includes one or more processors 710 (e.g., any ofmicroprocessors, controllers, and the like) which process variouscomputer-executable instructions to control the operation of device 700and to implement embodiments of active vibration control. Alternativelyor in addition, device 700 can be implemented with any one orcombination of hardware, firmware, or fixed logic circuitry that isimplemented in connection with processing and control circuits which aregenerally identified at 712. Although not shown, device 700 can includea system bus or data transfer system that couples the various componentswithin the device. A system bus can include any one or combination ofdifferent bus structures, such as a memory bus or memory controller, aperipheral bus, a universal serial bus, and/or a processor or local busthat utilizes any of a variety of bus architectures.

Device 700 also includes computer-readable media 714, such as one ormore memory components, examples of which include random access memory(RAM), non-volatile memory (e.g., any one or more of a read-only memory(ROM), flash memory, EPROM, EEPROM, etc.), and a disk storage device. Adisk storage device may be implemented as any type of magnetic oroptical storage device, such as a hard disk drive, a recordable and/orrewriteable compact disc (CD), any type of a digital versatile disc(DVD), and the like. Device 700 can also include a mass storage mediadevice 716.

Computer-readable media 714 provides data storage mechanisms to storethe device data 704, as well as various device applications 718 and anyother types of information and/or data related to operational aspects ofdevice 700. For example, an operating system 720 can be maintained as acomputer application with the computer-readable media 714 and executedon processors 710. The device applications 718 can include a devicemanager (e.g., a control application, software application, signalprocessing and control module, code that is native to a particulardevice, a hardware abstraction layer for a particular device, etc.). Thedevice applications 718 also include any system components or modules toimplement embodiments of the techniques described herein. In thisexample, the device applications 718 include an interface application722 and a stylus input driver 724 that are shown as software modulesand/or computer applications. The stylus input driver 724 isrepresentative of software that is used to provide an interface with adevice configured to capture inputs from the stylus 110 (or from theuser's hand 114) and/or to communicate with the stylus 110, to providethe one or more inputs previously described. Alternatively or inaddition, the interface application 722 and the stylus input driver 724can be implemented as hardware, software, firmware, or any combinationthereof. Additionally, the stylus input driver 724 may be configured tosupport multiple input devices, such as separate devices to capturetouch and stylus inputs, respectively. For example, the device may beconfigured to include dual display devices, in which one of the displaydevice is configured to capture touch inputs while the other stylusinputs.

Device 700 also includes an audio and/or video input-output system 726that provides audio data to an audio system 728 and/or provides videodata to a display system 730. The audio system 728 and/or the displaysystem 730 can include any devices that process, display, and/orotherwise render audio, video, and image data. Video signals and audiosignals can be communicated from device 700 to an audio device and/or toa display device via an RF (radio frequency) link, S-video link,composite video link, component video link, DVI (digital videointerface), analog audio connection, or other similar communicationlink. In an embodiment, the audio system 728 and/or the display system730 are implemented as external components to device 700.

Alternatively, the audio system 728 and/or the display system 730 areimplemented as integrated components of example device 700.

Conclusion

Although the invention has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the invention defined in the appended claims is not necessarilylimited to the specific features or acts described. Rather, the specificfeatures and acts are disclosed as example forms of implementing theclaimed invention.

What is claimed is:
 1. A computer-implemented method comprising:detecting a selection via a stylus relative to a surface of a computingdevice; determining a behavior that corresponds to the detectedselection, the behavior including functionality that varies according tothe detected selection; and responsive to the determining, simulatingthe behavior through vibration of the stylus or the surface of thecomputing device.
 2. The method of claim 1, further comprising:responsive to the determining, calculating a velocity of the stylusrelative to the surface of the computing device; and adjusting thevibrations based on the calculated velocity of the stylus.
 3. The methodof claim 1, wherein the detecting includes detecting pressure causedthrough pressing the stylus against the surface of the computing device.4. The method of claim 1, wherein the detected selection includes aselection of an object displayed on a display device of the computingdevice.
 5. The method of claim 4, wherein the object displayed on thedisplay device of the computing device comprises an icon.
 6. The methodof claim 1, wherein the vibrations are provided by the stylus and notthe surface of the computing device.
 7. The method of claim 1, whereinthe vibrations are provided by both the surface of the computing deviceand the stylus.
 8. The method of claim 1, wherein the vibrations areprovided by the surface of the computing device and received by one ormore fingers.
 9. The method of claim 1, wherein the detected selectionincludes a selection of a type of writing implement.
 10. The method ofclaim 1, wherein the detected selection includes a selection of the typeof writing surface.
 11. The method of claim 1, wherein vibrations of thesurface are used, at least in part, to simulate a type of writingimplement.
 12. The method of claim 1, wherein vibrations of the surfaceare used, at least in part, to simulate a type of writing surface. 13.One or more computer readable storage media encoded with instructionsthat, when executed, direct a computing device to perform actscomprising: detecting an input via a stylus relative to a surface of acomputing device; determining a behavior that corresponds to thedetected input, the behavior including functionality that variesaccording to the detected input; and responsive to the determining,simulating the behavior through vibration of the stylus or the surfaceof the computing device.
 14. The one or more computer readable storagemedia of claim 13, wherein the simulated behavior is configured toprovide feedback to a user that grasps the stylus.
 15. The one or morecomputer readable storage media of claim 13, the detecting includingdetecting selection of an object presented on a display device of thecomputing device, and wherein the simulated behavior through vibrationof the stylus or the surface of the computing device is furtherresponsive the detected selection of the object.
 16. The one or morecomputer readable storage media of claim 15, wherein the object is anicon or an item in a menu.
 17. The one or more computer readable storagemedia of claim 13, wherein the behavior is also determined through acorresponding display element that is displayed proximal to the stylusin a user interface by a display device that includes the surface.
 18. Asystem, comprising: one or more processors; and memory, communicativelycoupled to the one or more processors, storing instructions that whenexecuted configure the one or more processors to: detect selection of atype of writing surface via a first portion of a user interface or atype of writing implement via a second portion of a user interface; andsimulate the selected type of writing surface or type of writingimplement using vibrations of a stylus or surface of the computingdevice responsive to the detecting.
 19. The system of claim 18, the oneor more processors further configured to detect an input received via adisplay device of the computing device, wherein to simulate the selectedtype of writing surface or type of writing implement using vibrations ofa stylus or surface of the computing device is further responsive to thedetected input.
 20. The system of claim 18, the one or more processorsfurther configured to adjust a frequency of a wavelength of vibrationsbased on a velocity at which the stylus moves across the surface of thecomputing device.